#pragma once
#include "segmentationbase.h"
#include "itkGeodesicActiveContourLevelSetImageFilter.h"


class GACSegmentation :
	public SegmentationBase
{
public:
	GACSegmentation(void);
	~GACSegmentation(void);

 typedef itk::CovariantVector< float, ImageDimension2D >    EdgeDerivativePixelType;


  /** Image type of the edge potential derivative */
  typedef itk::Image< EdgeDerivativePixelType, ImageDimension2D > EdgeDerivativeImageType;



  /** GeodesicActiveContour filter used to evolve the contours */
  typedef   itk::GeodesicActiveContourLevelSetImageFilter< 
                                   InternalImageType2Df, 
                                   InternalImageType2Df,
                                   InternalPixelType
                                                 >     GeodesicActiveContourFilterType;


  virtual void RunGeodesicActiveContour();
   GeodesicActiveContourFilterType::Pointer    m_GeodesicActiveContourFilter;
//   virtual void SetThreshold( double value );
};
